In modern “enterprise” digital data processing systems, that is, computer systems for use in an office environment in a company, a number of personal computers, workstations, and other devices such as mass storage subsystems, network printers and interfaces to the public telephony system, are typically interconnected in a computer network. The personal computers and workstations (generally, “computers”) are used by individual users to perform processing in connection with data and programs that may be stored in the network mass storage subsystems. In such an arrangement, the computers, operating as clients, access the data and programs from the network mass storage subsystems for processing. In addition, the computers will enable processed data to be uploaded to the network mass storage subsystems for storage, to a network printer for printing, to the telephony interface for transmission over the public telephony system, or the like. In such an arrangement, the network mass storage subsystems, network printers and telephony interface operate as servers, since they are available to service requests from all of the clients in the network. By organizing the network in such a manner, the servers are readily available for use by all of the computers the network. Such a network may be spread over a fairly wide area, with the computers being interconnected by communication links such as electrical wires or optic fibers.
A problem arises when an operator at one computer wishes to enable the computer to determine network addresses that are used by other computers and other resources (generally, “computers”) for communications over the network, and selected characteristics of those computers. For example, an operator of one computer connected to the network may wish to use programs or data which are on other computers (including both client computers and server computers) which are connected to the network, in which case he or she may need to initially obtain the network addresses which identify the particular computers which are connected to the network. After obtaining the identifications, the operator may retrieve information from or transfer information to their respective information storage systems. In addition, after obtaining the identifications the operator which may enable ones of the other computers to perform, for example, processing operations in connection with remote procedure calls (RPC's) transmitted thereto over the network.
Several general methodologies have been used to enable an operator to determine the various computers which are available over the network. In one methodology, each computer can be provided with one or more lists of other computers and other resources which are available to it over the network. In such a case, the list would need to be updated by, for example, a system administrator as each computer or other resource is added to or removed from the network. There are several problems with this methodology. First, maintaining all of the lists in an updated condition can be a difficult task, particularly as the size of the network increases and computers and other resources are added or removed in remote portions of the network. In addition, such lists would normally only identify the particular computers and resources which are connected to the network, and would not necessarily indicate whether they are available for use at any particular point in time; thus, for example, if a particular computer or other resource is switched off, it would still be identified in a list but would not actually then be available.
In another methodology, each computer periodically broadcasts “advertising” messages containing their respective identifications over the network, perhaps along with other information such as various types of resources that they may provide which may be accessed over the network. The various computers can receive the broadcast messages and from the information contained therein can identify the computers and other resources which broadcast the respective messages. The computers can buffer the information that they receive in the respective broadcast messages and provide it to the operator when requested. Since new computers may be added to the network, the computers which broadcast the messages will need to broadcast them periodically over the network. While this methodology allows each computer to identify other computers which are available over the network, without requiring assistance from a system administrator or other operator, it does require the computers and other resources to broadcast a number of messages. A number of the broadcast messages may be unnecessary, either because the computers and other resources which are connected to and available over the network has not changed, or because operators have not requested information as to the computers and resources which are available over the network. This problem is exacerbated as the number of computers which are connected to the network increases, since the number of advertising messages would increase correspondingly and reduce the network bandwidth which is available for transfer of other information over the network. Additionally for networks which are interconnected by devices such as routers, the broadcast advertising messages may not be transferred throughout the entire network, since typically routers are designed so as not to forward broadcast messages.
A further methodology has been developed which alleviates these problems to some extent. In this further methodology, when an operator at a computer wishes to know what other computers and other resources are available over the network, his or her computer will broadcast an inquiry message over the network. Other computers connected to the network are to respond to the inquiry message with the required information, including, for example, their respective identifiers, within a particular time-out period. The computer that had broadcast the inquiry message will receive the information can provide the information which it receives during the time-out period to the operator. While this methodology alleviates the transmission of unnecessary messages which will be broadcast in the previously-described methodology, and it ensures that the information provided to the operator is current, it does have several problems. First, the requirement that a computer or other resource respond within the time-out period in order for its information to be included in the information displayed to the operator, results in information not being included if it is not received within the required time-out period. Thus, if a computer or other resource is busy and not able to respond to the broadcast message within the time-out period, its information will not be provided to the operator even though it may be available for use. Furthermore, if there are a large number of computers connected to the network which will respond to the broadcast, the computer that broadcast the message may be inundated with response messages, which can cause congestion and lost messages.
To alleviate the congestion problem, instead of a broadcast message, the computer that is determining the network addresses being used by other computers in the network can transmit individual address inquiry message packets using each of the possible network addresses, or a predetermined subset thereof. If another computer receives an address inquiry message packet, it will generate a response message packet for transmission to the computer that transmitted the address inquiry message packet, which response message packet includes its network address. The computer could transmit a single address inquiry message packet, wait for a predetermined time interval, during which it may get a response, and then transmit another address inquiry message packet, and repeat these operations for each network address to be tried. However, operating in this manner can require an unduly long time to complete operations in connection with all of the network addresses to be tried, particularly if the time interval is relatively long; which may be the case if the network is large and worst-case propagation delays may be commensurately large. To accommodate that, the computer can transmit a plurality of address inquiry message packets, and wait for a predetermined time period before sending out additional address inquiry message packets. This can still require an unduly long period of time, particularly if the network is large and the time interval is relatively long.